package main

import "fmt"

func main() {
	var m1 map[string]int
	//还没有初始化，（没有在内存中开辟空间）
	fmt.Println(m1 == nil)
	//要估算好该map容量，避免运行过程中再次动态扩容
	m1 = make(map[string]int, 10)
	m1["理想"] = 18
	m1["jiwuming"] = 35
	//m1["jiwuming123"] = 0 //key值是存在的，但是值正好为0，如何判断
	fmt.Println(m1)
	fmt.Println(m1["jiwuming"])
	fmt.Println(m1["jiwuming123"]) //如果不存在这个key,拿到对应值类型的零值
	//约定成俗用ok接收返回的布尔值
	fmt.Println("ok判断key值是否存在：")
	value, ok := m1["123"]
	if !ok {
		fmt.Println("查无此key")
	} else {
		fmt.Println(value)
	}

	//map遍历
	for k, v := range m1 {
		fmt.Println(k, v)
	}

	//只key遍历
	for k := range m1 {
		fmt.Println(k)
	}

	//只value遍历
	for _, v := range m1 {
		fmt.Println(v)
	}

	//删除
	delete(m1, "jiwuming")
	fmt.Println(m1)
	delete(m1, "沙河") //删除不存在的key，无任何回应
}
